package ${bizPackage}.service.${tablePrefix};

import com.mybatisflex.core.service.IService;
import com.mybatisflex.core.paginate.Page;
import ${commonPackage}.entity.${tablePrefix}.${entityName};
import ${commonPackage}.dto.${tablePrefix}.${entityName}AddDTO;
import ${commonPackage}.dto.${tablePrefix}.${entityName}ModifyDTO;
import ${commonPackage}.dto.${tablePrefix}.${entityName}PageDTO;
import ${commonPackage}.vo.${tablePrefix}.${entityName}DetailVO;
import ${commonPackage}.vo.${tablePrefix}.${entityName}PageVO;

import java.util.List;

/**
 * ${tableComment} 服务
 *
 * @author ${username}
 * @date ${createTime}
 */
public interface ${entityName}Service extends IService<${entityName}> {

	/**
	 * 添加
	 *
	 * @param ${entityNameLowerFirst}AddDTO 新增dto
	 */
    void addOne(${entityName}AddDTO ${entityNameLowerFirst}AddDTO);

	/**
	 * 删除
	 *
	 * @param id 主键
	 */
    void deleteById(Long id);

    /**
     * 修改
     *
     * @param id 主键
     * @param ${entityNameLowerFirst}ModifyDTO 更新dto
     */
    void modifyById(Long id, ${entityName}ModifyDTO ${entityNameLowerFirst}ModifyDTO);

    /**
     * 详情
     *
     * @param id 主键
     * @return {@link ${entityName}DetailVO }
     */
    ${entityName}DetailVO detailById(Long id);

    /**
     * 分页
     *
     * @param page                 页面
     * @param size                 大小
     * @param ${entityName}PageDTO dto
     * @return {@link Page<${entityName}PageVO> }
     */
    Page<${entityName}PageVO> queryPage(Long page, Long size, ${entityName}PageDTO ${entityNameLowerFirst}PageDTO);

}
